package com.zjcloud.jwgl.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zjcloud.common.annotation.Excel;
import com.zjcloud.common.core.domain.BaseEntity;

/**
 * 算法类型对象 ac_algorithm_type
 * 
 * @author zjcloud
 * @date 2024-12-19
 */
public class AcAlgorithmType extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 算法类型ID */
    private Long id;

    /** 算法类型编码 */
    @Excel(name = "算法类型编码")
    private String typeCode;

    /** 算法类型名称 */
    @Excel(name = "算法类型名称")
    private String typeName;

    /** 算法实现类 */
    @Excel(name = "算法实现类")
    private String algorithmClass;

    /** 算法描述 */
    @Excel(name = "算法描述")
    private String description;

    /** 复杂度级别(LOW低 MEDIUM中 HIGH高) */
    @Excel(name = "复杂度级别", readConverterExp = "LOW=低,MEDIUM=中,HIGH=高")
    private String complexityLevel;

    /** 预估执行时间(秒) */
    @Excel(name = "预估执行时间(秒)")
    private Integer executionTimeEstimate;

    /** 内存需求(字节) */
    @Excel(name = "内存需求(字节)")
    private Long memoryRequirement;

    /** 适用场景JSON */
    private String applicableScenarios;

    /** 参数模式定义JSON */
    private String parameterSchema;

    /** 默认参数JSON */
    private String defaultParameters;

    /** 性能指标JSON */
    private String performanceMetrics;

    /** 是否启用(1启用 0禁用) */
    @Excel(name = "是否启用", readConverterExp = "0=禁用,1=启用")
    private Integer isEnabled;

    /** 是否系统内置(1是 0否) */
    @Excel(name = "是否系统内置", readConverterExp = "0=否,1=是")
    private Integer isSystem;

    /** 排序 */
    @Excel(name = "排序")
    private Integer sortOrder;

    /** 版本号 */
    @Excel(name = "版本号")
    private String version;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setTypeCode(String typeCode) 
    {
        this.typeCode = typeCode;
    }

    public String getTypeCode() 
    {
        return typeCode;
    }
    public void setTypeName(String typeName) 
    {
        this.typeName = typeName;
    }

    public String getTypeName() 
    {
        return typeName;
    }
    public void setAlgorithmClass(String algorithmClass) 
    {
        this.algorithmClass = algorithmClass;
    }

    public String getAlgorithmClass() 
    {
        return algorithmClass;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setComplexityLevel(String complexityLevel) 
    {
        this.complexityLevel = complexityLevel;
    }

    public String getComplexityLevel() 
    {
        return complexityLevel;
    }
    public void setExecutionTimeEstimate(Integer executionTimeEstimate) 
    {
        this.executionTimeEstimate = executionTimeEstimate;
    }

    public Integer getExecutionTimeEstimate() 
    {
        return executionTimeEstimate;
    }
    public void setMemoryRequirement(Long memoryRequirement) 
    {
        this.memoryRequirement = memoryRequirement;
    }

    public Long getMemoryRequirement() 
    {
        return memoryRequirement;
    }
    public void setApplicableScenarios(String applicableScenarios) 
    {
        this.applicableScenarios = applicableScenarios;
    }

    public String getApplicableScenarios() 
    {
        return applicableScenarios;
    }
    public void setParameterSchema(String parameterSchema) 
    {
        this.parameterSchema = parameterSchema;
    }

    public String getParameterSchema() 
    {
        return parameterSchema;
    }
    public void setDefaultParameters(String defaultParameters) 
    {
        this.defaultParameters = defaultParameters;
    }

    public String getDefaultParameters() 
    {
        return defaultParameters;
    }
    public void setPerformanceMetrics(String performanceMetrics) 
    {
        this.performanceMetrics = performanceMetrics;
    }

    public String getPerformanceMetrics() 
    {
        return performanceMetrics;
    }
    public void setIsEnabled(Integer isEnabled) 
    {
        this.isEnabled = isEnabled;
    }

    public Integer getIsEnabled() 
    {
        return isEnabled;
    }
    public void setIsSystem(Integer isSystem) 
    {
        this.isSystem = isSystem;
    }

    public Integer getIsSystem() 
    {
        return isSystem;
    }
    public void setSortOrder(Integer sortOrder) 
    {
        this.sortOrder = sortOrder;
    }

    public Integer getSortOrder() 
    {
        return sortOrder;
    }
    public void setVersion(String version) 
    {
        this.version = version;
    }

    public String getVersion() 
    {
        return version;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("typeCode", getTypeCode())
            .append("typeName", getTypeName())
            .append("algorithmClass", getAlgorithmClass())
            .append("description", getDescription())
            .append("complexityLevel", getComplexityLevel())
            .append("executionTimeEstimate", getExecutionTimeEstimate())
            .append("memoryRequirement", getMemoryRequirement())
            .append("applicableScenarios", getApplicableScenarios())
            .append("parameterSchema", getParameterSchema())
            .append("defaultParameters", getDefaultParameters())
            .append("performanceMetrics", getPerformanceMetrics())
            .append("isEnabled", getIsEnabled())
            .append("isSystem", getIsSystem())
            .append("sortOrder", getSortOrder())
            .append("version", getVersion())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}